条件语句 (if, unless, case)
在编程中,条件语句用于根据不同的条件执行不同的代码块。Ruby 提供了多种条件语句,包括 if、unless 和 case。这些语句帮助我们编写更具逻辑性和灵活性的代码。
1. if 语句
if 语句是最常用的条件语句之一。它根据条件的真假来决定是否执行某个代码块。
1.1 基本语法
if condition
# 当 condition 为真时执行的代码
end
1.2 示例
x = 10
if x > 5
puts "x 大于 5"
end
在这个例子中,x > 5 是一个条件表达式。如果 x 大于 5,则输出 "x 大于 5"。
1.3 if-else 语句
if-else 语句在条件为假时提供了另一种执行路径。
if condition
# 当 condition 为真时执行的代码
else
# 当 condition 为假时执行的代码
end
1.4 示例
x = 3
if x > 5
puts "x 大于 5"
else
puts "x 小于或等于 5"
end
在这个例子中,如果 x 大于 5,则输出 "x 大于 5";否则输出 "x 小于或等于 5"。
1.5 if-elsif-else 语句
if-elsif-else 语句允许我们检查多个条件。
if condition1
# 当 condition1 为真时执行的代码
elsif condition2
# 当 condition2 为真时执行的代码
else
# 当所有条件都为假时执行的代码
end
1.6 示例
x = 7
if x > 10
puts "x 大于 10"
elsif x > 5
puts "x 大于 5 但小于或等于 10"
else
puts "x 小于或等于 5"
end
在这个例子中,程序会根据 x 的值输出不同的信息。
2. unless 语句
unless 语句与 if 语句相反,它在条件为假时执行代码块。
2.1 基本语法
unless condition
# 当 condition 为假时执行的代码
end
2.2 示例
x = 3
unless x > 5
puts "x 小于或等于 5"
end
在这个例子中,如果 x 不大于 5,则输出 "x 小于或等于 5"。
2.3 unless-else 语句
unless-else 语句在条件为真时提供了另一种执行路径。
unless condition
# 当 condition 为假时执行的代码
else
# 当 condition 为真时执行的代码
end
2.4 示例
x = 7
unless x > 5
puts "x 小于或等于 5"
else
puts "x 大于 5"
end
在这个例子中,如果 x 不大于 5,则输出 "x 小于或等于 5";否则输出 "x 大于 5"。
3. case 语句
case 语句用于多重条件判断,类似于其他语言中的 switch 语句。
3.1 基本语法
case expression
when value1
# 当 expression 等于 value1 时执行的代码
when value2
# 当 expression 等于 value2 时执行的代码
else
# 当 expression 不等于任何值时执行的代码
end
3.2 示例
grade = "B"
case grade
when "A"
puts "优秀"
when "B"
puts "良好"
when "C"
puts "中等"
else
puts "不及格"
end
在这个例子中,程序会根据 grade 的值输出不同的评价。
3.3 范围匹配
case 语句还可以使用范围进行匹配。
score = 85
case score
when 90..100
puts "优秀"
when 80..89
puts "良好"
when 70..79
puts "中等"
else
puts "不及格"
end
在这个例子中,程序会根据 score 的值输出不同的评价。
4. 实践练习
4.1 练习 1: 温度转换
编写一个程序,根据用户输入的温度值和单位(摄氏度或华氏度),输出转换后的温度值。
puts "请输入温度值:"
temperature = gets.chomp.to_f
puts "请输入单位 (C 或 F):"
unit = gets.chomp.upcase
case unit
when "C"
converted_temperature = (temperature * 9 / 5) + 32
puts "#{temperature}°C 转换为华氏度是 #{converted_temperature}°F"
when "F"
converted_temperature = (temperature - 32) * 5 / 9
puts "#{temperature}°F 转换为摄氏度是 #{converted_temperature}°C"
else
puts "无效的单位"
end
4.2 练习 2: 判断闰年
编写一个程序,判断用户输入的年份是否为闰年。
puts "请输入年份:"
year = gets.chomp.to_i
if (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)
puts "#{year} 是闰年"
else
puts "#{year} 不是闰年"
end
5. 总结
条件语句是编程中非常重要的工具,它们帮助我们根据不同的条件执行不同的代码。通过 if、unless 和 case 语句,我们可以编写更加灵活和逻辑性强的程序。希望这篇教程能帮助你更好地理解和使用这些条件语句。